#pragma once

#include <QDockWidget>
#include <QVector>
#include "actorbase.h"
#include <osg\ref_ptr>
#include "propertytreewidget.h"

class QListWidget;
class QPushButton;
class QListWidgetItem;
class QMenu;
class QAction;

class LightEditDockWidget:public QDockWidget
{
	Q_OBJECT
public:
	LightEditDockWidget(QWidget* parent = 0,Qt::WindowFlags flags = 0);
	~LightEditDockWidget();

private slots:
	void slotsCurrentMapChanged();
	void slotsClearScene();
	void slotsCancelClick(bool);
	void show_contextmenu(const QPoint&);
	//void slotsAddAmbientLight();
	void slotsAddDirectionLight();
	void slotsRemove();
	void slotsAddEyePositionLight();
	void slotListWidgetItemSelecteChanged(QListWidgetItem*,QListWidgetItem*);
private:
	void initGui();
	void addActorToWidget(osg::ref_ptr<CoreBase::ActorBase> actor);
	void updateStatus();
	PublicGui::PropertyTreeWidget*		_propertyTree;
	QListWidget*						_listWidget;
	QPushButton*						_cancelButton;
	QMenu*								_mainMenu;
	//QAction*							_addAmbientLight;
	QAction*							_addEyePositionLight;
	QAction*							_addDirectionLight;
	QAction*							_removeLight;
};